from PIL import Image, ImageDraw, ImageFont

def chinese_to_dot_matrix(chinese_char, font_size=16):
    """将单个汉字转换为点阵像素矩阵（内部使用，返回0/1矩阵）"""
    img = Image.new('1', (font_size, font_size), 1)  # 白色背景（1表示白色）
    draw = ImageDraw.Draw(img)
    try:
        # 加载中文字体（根据系统调整字体名称）
        font = ImageFont.truetype('simhei.ttf', font_size)
    except IOError:
        font = ImageFont.load_default()
        print("警告：未找到中文字体，可能显示异常")
    
    # 绘制汉字（0表示黑色）
    draw.text((0, 0), chinese_char, font=font, fill=0)
    
    # 提取像素矩阵（1为空白，0为笔画）
    return [[img.getpixel((x, y)) for x in range(font_size)] for y in range(font_size)]

def horizontal_name_display(name, font_size=24, dot_char='*', space_char=' '):
    """横向显示名字的点阵图"""
    # 生成每个字的点阵矩阵
    char_matrices = [chinese_to_dot_matrix(char, font_size) for char in name]
    
    # 横向拼接所有字的点阵（按行合并）
    result = []
    for row in range(font_size):
        line = []
        for mat in char_matrices:
            # 逐字提取当前行的像素，转换为字符
            line.extend([dot_char if pixel == 0 else space_char for pixel in mat[row]])
        result.append(''.join(line))
    
    return result

if __name__ == "__main__":
    name = "陈纯纯"  # 要显示的名字
    font_size = 29   # 点阵大小（越大越清晰）
    
    print(f"横向显示名字 '{name}' ({font_size}x{font_size*len(name)}):")
    horizontal_matrix = horizontal_name_display(name, font_size)
    for line in horizontal_matrix:
        print(line)